package urjc.as.emergencies.client;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTree;


/**
 * Implementa un sencillo cliente JAVA para testar el servidor de Facebook Mail
 * diseñado en clase.
 * 
 * @author Sergio Saugar
 */
public class Client extends JPanel {

	// ///////// ATTRIBUTES

	private static final long serialVersionUID = 8717601415012003306L;

	/**
	 * Área de texto para mostrar las representaciones y el estado de los
	 * métodos recibidos
	 */
	TextArea text;
	/**
	 * Panel que muestra las opciones funcionales dependiendo de la carpeta
	 * seleccionada.
	 */
	JPanel treeOptions;

	private DynamicTree treePanel;
	/**
	 * Modelo del árbol
	 */
	JTree tree;

	// ///////// CONSTRUCTOR

	/**
	 * Constructor
	 */
	public Client() {

		// Establece el layout del objeto
		this.setLayout(new BorderLayout());

		// Crea el árbol dinámico
		treePanel = new DynamicTree(this);
		treePanel.setPreferredSize(new Dimension(200, 100));
		JScrollPane treeView = new JScrollPane(treePanel);

		// Crea el área de texto
		text = new TextArea();
		text.setEditable(false);
		JScrollPane textView = new JScrollPane(text);

		// Crea el panel para presentar opciones
		treeOptions = new JPanel(new GridLayout(1, 0));
		treeOptions.add(treeView, 0);
		treeOptions.add(new JPanel(), 1);

		// Añade los elementos a un panel divisor
		JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
		splitPane.setTopComponent(treeOptions);
		splitPane.setBottomComponent(textView);
		splitPane.setDividerLocation(280);
		splitPane.setPreferredSize(new Dimension(950, 600));

		add(splitPane, BorderLayout.CENTER);
	}

	/**
	 * Elimina el panel de opciones que esté activo en ese momento.
	 */
	void deletePanel() {
		treeOptions.remove(1);
		treeOptions.add(new JPanel(), 1);
		treeOptions.updateUI();
	}

	public static void main(String arg[]) {
		JFrame mainFrame = new JFrame(
				".oO Emergencias SAMMUR 112   Oo. version 0.10001000");
		mainFrame.setSize(new Dimension(600, 500));
		mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		mainFrame.setLocationRelativeTo(null);
		mainFrame.getContentPane().add(new Client());
		mainFrame.pack();
		mainFrame.setVisible(true);
	}
}
